//
//  MGNetworkManager.swift
//  微博
//
//  Created by 陈明光 on 2019/11/11.
//  Copyright © 2019 陈明光. All rights reserved.
//

import UIKit
//import AFNetworking

//swift 的枚举支持任意数据类型
//switch / enum 在OC中都只会支持整数
enum MGHPTTPMethod {
    case GET
    case POST
}

typealias OnHttpListener = (_ isSuccessed:Bool, _ datas:Any, _ error:Error?)->Void
typealias RequestParams = Dictionary<String,Any>

//网络管理工具
class MGNetworkManager: AFHTTPSessionManager {
    // https get 方法
        class func getHttpsMethod(url:String, params:RequestParams, timeLimit:TimeInterval = 10, listener:@escaping OnHttpListener) {
            
        }
        
        // post 方法 带完整http路径
        class func DanceFitnesspostMethod(baseUrl:String = "", restUrl:String, params:RequestParams, listener:@escaping OnHttpListener)->(Void){
            
        }
    
    
    //静态区/常量/闭包/
    //在第一次访问时执行闭包，并且将结果保存在 shared 中
    static let shared = MGNetworkManager()
//
//
//    /// 封装AFN的 GET / POST 请求
//    ///
//    /// - Parameters:
//    ///   - method: GET/POST
//    ///   - URLString: URLString
//    ///   - parameters: 参数字典
//    ///   - completion: 完成回调（json(字典/数组)，是否成功）
//    func request(method: MGHPTTPMethod = .GET , URLString: String , parameters:[String: AnyObject], completion:  @escaping (_ json: AnyObject? ,_ isSuccess: Bool)->()) {
//
//        //成功回调
//        let success = { (task: URLSessionDataTask, json: AnyObject?)->() in
//            completion(json , true)
//        }
//
//        //失败回调
//        let failure = { (task: URLSessionDataTask?, error: NSError)->() in
//            //error 通常比较吓人，例如编号 xxx 一堆错误
//            print("网络请求错误 \(error)")
//            completion(nil , false)
//
//        }
//        if method == .GET {
//            get(URLString, parameters: parameters, progress: nil, success: success as? (URLSessionDataTask, Any?) -> Void , failure: failure as? (URLSessionDataTask?, Error) -> Void)
//        }else{
//            post(URLString, parameters: parameters, progress: nil, success: success as? (URLSessionDataTask, Any?) -> Void, failure: failure as? (URLSessionDataTask?, Error) -> Void)
//        }
       
        
       
//    }

}
